<?php

class Materia_Model extends CI_Model {

    function grabarMateria($parameters) {

        $insert = array(
            "ejeform_mat" => $parameters['ejeform_mat'],
            "campocien_mat" => $parameters['campocien_mat'],
            "codigo_mat" => $parameters['codigo_mat'],
            "nombre_mat" => $parameters['nombre_mat'],
            "creditos_mat" => $parameters['creditos_mat'],
            "requisito1_mat" => $parameters['requisito1_mat'],
            "requisito2_mat" => $parameters['requisito2_mat'],
            "requisito3_mat" => $parameters['requisito3_mat'],
            "requisito4_mat" => $parameters['requisito4_mat'],
            "tipomat_mat" => $parameters['tipomat_mat'],
            "ciclos_ide_cic" => $parameters['ciclos_ide_cic'],
            "eliminado_mat" => 0);
        $this->db->insert("materia", $insert);
    }

    function actualizarMateria($parameters, $ide) {
        $update = array(
            "ejeform_mat" => $parameters['ejeform_mat'],
            "campocien_mat" => $parameters['campocien_mat'],
            "codigo_mat" => $parameters['codigo_mat'],
            "nombre_mat" => $parameters['nombre_mat'],
            "creditos_mat" => $parameters['creditos_mat'],
            "requisito1_mat" => $parameters['requisito1_mat'],
            "requisito2_mat" => $parameters['requisito2_mat'],
            "requisito3_mat" => $parameters['requisito3_mat'],
            "requisito4_mat" => $parameters['requisito4_mat'],
            "tipomat_mat" => $parameters['tipomat_mat'],
            "ciclos_ide_cic" => $parameters['ciclos_ide_cic'],
            "eliminado_mat" => 0);
        $this->db->where("ide_mat", $ide);
        $this->db->update("materia", $update);
    }

    function getDatosMateria($ide) {
        $this->db->where('ide_mat', $ide);
        $this->db->where('eliminado_mat', 0);
        $query = $this->db->get('materia');
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
        }
        $query->free_result();
        return $data;
    }

    function getListado($codigo_cic) {

        $this->db->select('carrera.ide_car,carrera.nombre_car,pensum.ide_pen,pensum.descripcion_pen,
            pensum.estado_pen,ciclos.ide_cic,ciclos.codigo_cic,ciclos.nombre_cic,materia.ide_mat,
            materia.nombre_mat,materia.creditos_mat,materia.tipomat_mat');
        $this->db->from('carrera');
        $this->db->join('pensum', 'carrera.ide_car = pensum.ide_car', 'inner');
        $this->db->join('ciclos', 'pensum.ide_pen = ciclos.ide_pen', 'inner');
        $this->db->join('materia', 'ciclos.ide_cic = materia.ciclos_ide_cic', 'inner');
        if($codigo_cic>0){
            $this->db->where('ciclos.ide_cic', $codigo_cic);
        }
        $this->db->where('carrera.eliminado_car', 0);
        
        $this->db->where('pensum.eliminado_pen', 0);
        $this->db->where('ciclos.eliminado_cic', 0);
        $this->db->where('materia.eliminado_mat', 0);
        $this->db->order_by("carrera.nombre_car");
        $this->db->order_by("ciclos.nombre_cic");


        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
            $query->free_result();
            return $data;
        } else {
            return null;
        }
    }

    function eliminarMateria($ide) {
        $update = array("eliminado_mat" => 1);
        $this->db->where("ide_mat", $ide);
        $this->db->update("materia", $update);
    }

    function getBusquedaMateria($valor) {
        $criterio = "materia.nombre_mat LIKE '%$valor%'";
        $this->db->select('carrera.ide_car,carrera.nombre_car,pensum.ide_pen,pensum.descripcion_pen,
            pensum.estado_pen,ciclos.ide_cic,ciclos.nombre_cic,materia.ide_mat,materia.nombre_mat');
        $this->db->from('carrera');
        $this->db->join('pensum', 'carrera.ide_car = pensum.ide_car', 'inner');
        $this->db->join('ciclos', 'pensum.ide_pen = ciclos.ide_pen', 'inner');
        $this->db->join('materia', 'ciclos.ide_cic = materia.ciclos_ide_cic', 'inner');
        $this->db->where($criterio);
        $this->db->where('carrera.eliminado_car', 0);
        $this->db->where('pensum.eliminado_pen', 0);
        $this->db->where('ciclos.eliminado_cic', 0);
        $this->db->where('materia.eliminado_mat', 0);
        $this->db->order_by("carrera.nombre_car");
        $this->db->order_by("ciclos.nombre_cic");

        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
            $query->free_result();
            return $data;
        } else {
            return null;
        }
    }

    function getMateriaCiclo($ide_cic, $ide_lec, $seccion, $paralelo) {
        $this->load->model('Distributivo_Model');


        $this->db->select('materia.ide_mat,materia.codigo_mat,materia.nombre_mat,materia.creditos_mat');
        $this->db->from('ciclos');
        $this->db->join('materia', 'ciclos.ide_cic = materia.ciclos_ide_cic');
        $this->db->where('materia.ciclos_ide_cic', $ide_cic);
        //$this->db->where($criterio);
        $this->db->where('materia.eliminado_mat', 0);
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {

                $distributivo = array(
                    "ide_lec" => $ide_lec,
                    "ide_mat" => $row['ide_mat'],
                    "seccion" => $seccion,
                    "paralelo" => $paralelo,
                    "eliminado" => 0,
                );
                //print_r($distributivo);

                if (!$this->Distributivo_Model->getExisteDistributivo($distributivo))
                    $data[] = $row;
            }
            $query->free_result();
            if (!empty($data))
                return $data;
            else
                return null;
        } else {
            return null;
        }
    }

    function getPresequisitos($ide_car, $ide_pen) {

        $this->db->select('pensum.ide_pen, ciclos.ide_cic,ciclos.codigo_cic, materia.ide_mat,
            materia.codigo_mat,materia.nombre_mat');
        $this->db->from('carrera');
        $this->db->join('pensum', 'carrera.ide_car = pensum.ide_car', 'inner');
        $this->db->join('ciclos', 'pensum.ide_pen = ciclos.ide_pen', 'inner');
        $this->db->join('materia', 'ciclos.ide_cic = materia.ciclos_ide_cic', 'inner');

        $this->db->where('carrera.ide_car', $ide_car);
        $this->db->where('pensum.ide_pen', $ide_pen);
        $this->db->order_by("ciclos.codigo_cic");
        $this->db->order_by("materia.codigo_mat");

        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
            $query->free_result();
            return $data;
        } else {
            return null;
        }
    }
    function VerificaPresequisitosMateria($ide_mat) {


        $this->db->select('requisito1_mat, requisito2_mat,requisito3_mat, requisito4_mat');
        $this->db->from('materia');

        $this->db->where('ide_mat', $ide_mat);

        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
            $query->free_result();
            foreach ($data as $key => $value) {
                if ($value['requisito1_mat']==0 && $value['requisito2_mat']==0
                    && $value['requisito3_mat']==0 &&  $value['requisito4_mat']==0){
                    $data=null;


                }
                # code...
            }
            
        } else {
            $data=null;

            
        }
        return $data;
    }
    function getNombreMateria($ide) {
        $this->db->select('nombre_mat');

        $this->db->where('ide_mat', $ide);
        $this->db->where('eliminado_mat', 0);
        $query = $this->db->get('materia');
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
        }
        $query->free_result();
        return $data;
    }



}